feat(workflow): make execution recovery clippy-clean - #3429
Open
nmcusa wants to merge 1 commit into
Open
Conversation
nmcusa
force-pushed
the
codex/buzz-workflow-recovery-clippy
branch
from
July 28, 2026 23:19
71c1aa5 to
d1e63a3
Compare
Signed-off-by: Nicholas Craig <[email protected]>
nmcusa
force-pushed
the
codex/buzz-workflow-recovery-clippy
branch
from
July 29, 2026 00:45
d1e63a3 to
b457d61
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
send_messageevent publication and action receipt atomic-D warningsfindings and document intentional wide persistence boundariesMigration numbering (please read before reviewing the renames)
Rebased onto current
main.mainhad since added0025_relay_invites.sql, and thisbranch had also claimed
0025, so the three migrations here were renumbered:0025_workflow_run_leases.sql0026_workflow_run_leases.sql0026_workflow_step_attempts.sql0027_workflow_step_attempts.sql0027_workflow_event_outbox.sql0028_workflow_event_outbox.sqlFile contents are byte-identical across the rename — only the version prefix changed.
Worth flagging because the collision is not caught by the build:
cargo check -p buzz-dbcompiles cleanly with two
0025files present.sqlx::migrate!accepts duplicate versions,and
_sqlx_migrationskeys on version as its primary key, so the failure would have surfacedat migration time rather than in CI.
It also made
migration::testsnon-deterministic: that suite sorts by version alone, soassert_eq!(migrations[24].version, 25)could resolve to either file. After renumbering,every version is unique and the index is stable.
The two conflicted assertions resolved to 28 (main's 25 + the 3 added here) — neither
side of the conflict was correct on its own.
Validation
Re-run in full after the rebase, against
main@ 90e058e:cargo fmt --all -- --check— cleancargo clippy -p buzz-db -p buzz-workflow --all-targets -- -D warnings— 0 warningsOPENSSL_LIB_DIR=/usr/lib/x86_64-linux-gnu OPENSSL_INCLUDE_DIR=/usr/include OPENSSL_DIR=/usr cargo clippy -p buzz-relay --all-targets -- -D warnings— 0 warningscargo test -p buzz-workflow --lib— 158 passedcargo test -p buzz-db workflow::tests --no-fail-fast -- --ignored— 14 passed against PostgreSQL 16cargo test -p buzz-db migration::(incl.--ignored) — 10 passed, covering the renumberedmigration path on a fresh database
Note for anyone reproducing locally: the
--ignoredmigration::testseachDROP/CREATE SCHEMA public, so under plaincargo testthey race in a shared process andfail with
duplicate key ... nspname=public. CI'scargo nextestisolates each test in itsown process; locally,
--test-threads=1reproduces CI's result.Beads: bz-k2o